package com.captainbank.tcl.tclapplication.ui.activity.basic;

import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Handler;

import com.captainbank.tcl.tclapplication.R;
import com.captainbank.tcl.tclapplication.ui.activity.function.Retrofit2Activity;
import com.gyf.barlibrary.ImmersionBar;

import java.util.Map;

import cn.magicwindow.MLinkAPIFactory;
import cn.magicwindow.MWConfiguration;
import cn.magicwindow.MagicWindowSDK;
import cn.magicwindow.mlink.MLinkCallback;
import cn.magicwindow.mlink.MLinkIntentBuilder;

/**
 * Created by TCL on 2019/4/26.
 * Describe:
 */
public class WelcomeActivity extends BaseActivity {
    private Handler mHandler = new Handler();

    @Override
    protected int getLayoutId() {
        return R.layout.activity_welcome;
    }

    @Override
    protected void initImmersionBar() {
        super.initImmersionBar();
        ImmersionBar.with(this)
                .statusBarColor(R.color.color_light_green)
                .statusBarDarkFont(true, 0.2f)
                .init();
    }

    @Override
    protected void initData() {
        initMW();
        //极光魔链注册（默认和自定义）
        jgMagicWindowRegisterDefault(false);
    }

    private void jgMagicWindowRegisterDefault(boolean isDeafult) {
        //默认注册
        if (isDeafult) {
            MLinkAPIFactory.createAPI(this).registerWithAnnotation(this);
            //自定义注册（可实现跳转前操作，如：登录）
        } else {
            MLinkAPIFactory.createAPI(this).registerDefault(new MLinkCallback() {
                @Override
                public void execute(Map paramMap, Uri uri, Context context) {
                    //HomeActivity 为你的首页
                    MLinkIntentBuilder.buildIntent(paramMap, context, MainActivity.class);
                }
            });
            // mLinkKey:  mLink 的 key, mLink的唯一标识
            MLinkAPIFactory.createAPI(this).register("tcl_show", new MLinkCallback() {
                public void execute(Map paramMap, Uri uri, Context context) {
                    MLinkIntentBuilder.buildIntent(paramMap, context, Retrofit2Activity.class);

                    //如果不是要默认MLinkIntentBuilder,请参考下面
                    // intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TOP);
//                    Intent intent = new Intent(context, clazz);
//                    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TOP);
//                    if (paramMap!=null) {
//                        for (Map.Entry param : paramMap.entrySet()) {
//                            intent.putExtra(param.getKey(), param.getValue());
//                        }
//                    }
//                    context.startActivity(intent);
                }
            });
        }
    }

    //初始化魔窗
    private void initMW() {
        MWConfiguration config = new MWConfiguration(this);
        config.setLogEnable(true)//打开极光魔链Log信息
        .setChannel("official")//魔窗添加
        .setSharePlatform(MWConfiguration.ORIGINAL);//魔窗添加
        MagicWindowSDK.initSDK(config);
    }

    @Override
    protected void initBeforeSetContentView() {
        if (!this.isTaskRoot()) {
            Intent intent = getIntent();
            if (intent != null) {
                String action = intent.getAction();
                if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN.equals(action)) {
                    finish();
                    return;
                }
            }
        }
        super.initBeforeSetContentView();
    }

    @Override
    protected void initView() {
        Uri mLink = getIntent().getData();
//        if (mLink != null) {
//            //启动页根据此：路由不同的app展示页（app安装情况下）
//            //如果有启动动画，并希望在启动动画结束后再跳转：下面代码需放在动画结束后再调用
//            MLinkAPIFactory.createAPI(this).router(this, getIntent().getData());
//            //跳转后结束当前activity
//            finish();
//        } else {
//            //跳转到首页
//            mHandler.postDelayed(new Runnable() {
//                @Override
//                public void run() {
//                    goHome();
//                }
//            }, 500);
//        }

        //若希望通过mLink跳转直达的页面，做到“返回时进入首页，而不是退出程序”，请注释上面代码，如下操作：
        goHome();
        if (mLink != null) {
            MLinkAPIFactory.createAPI(this).router(this, getIntent().getData());

        } else {
//            //如果需要应用宝跳转，则调用。否则不需要
//            MLinkAPIFactory.createAPI(this).checkYYB();
        }
        finish();

    }

    private void goHome() {
        Intent intent = new Intent(this, MainActivity.class);
        startActivity(intent);
        finish();
    }
}
